htaccess αρχείο - τι είναι και σε τι χρησιμεύει;
Το .htaccess είναι ένα αρχείο του web server που μπορεί να αλλάζει ρυθμίσεις και να επιτρέπει την δημιουργία πολλών λειτουργιών, όπως πχ σελίδων σφάλματος 404 (η σελίδα δεν βρέθηκε), ανακατευθύνσεων και εντολών. Το .htaccess είναι εύκολο στην χρήση και στην σύνταξή του καθώς περιλαμβάνει μόνο μερικές απλές εντολές γραμμένες σε ένα αρχείο κειμένου (txt).
Υποστηρίζει ο server μου .htaccess;
Εάν ο διακομιστής στον οποίο βρίσκεται η ιστοσελίδα σας είναι Unix ή Linux ή τρέχει Apache τότε το πιθανότερο είναι να έχετε υποστήριξη htaccess εκτός αν δεν επιτρέπει κάτι τέτοιο ο διαχειριστής του συστήματός σας. Επίσης αν έχετε δυνατότητα δημιουργίας / χρήσης προστατευμένων καταλόγων τότε και πάλι το πιθανότερο είναι να υποστηρίζονται τα αρχεία .htaccess. Η DNHOST υποστηρίζει τα .htacess αρχεία στους hosting servers της.
Τι μπορεί να κάνει το .htaccess;
Κάποιες από τις πραγματικά πάμπολλες δυνατότητες του .htaccess: προστασία καταλόγων με κωδικό, αυτόματη ανακατεύθυνση χρηστών, δικές σας σελίδες σφαλμάτων (custom error pages), φιλτράρισμα διευθύνσεων IP ώστε να επιτρέπεται ή να αποκλείεται η πρόσβασή τους στη σελίδα, ρύθμιση του directory browsing.
Δημιουργία αρχείου .htaccess
Δημιουργήστε ένα νέο αρχείο κειμένου (txt) και δώστε του το όνομα .htaccess. Εάν το λειτουργικό σας δεν σας επιτρέπει τη δημιουργία αρχείων χωρίς όνομα και μόνο με την επέκταση .htaccess τότε δώστε του το όνομα htaccess.txt, ανεβάστε το στο site σας και μέσω FTP μετονομάστε το σε .htaccess.
Τυπικές σελίδες σφαλμάτων (Custom Error Pages)
Μπορείτε αντί των προεπιλεγμένων να χρησιμοποιήσετε τις δικές σας σελίδες σφαλμάτων στο site σας. Το πλεονέκτημα τις χρήσης των δικών σας σελίδων σφαλμάτων είναι τόσο αισθητικό (καλαίσθητες σελίδες αντί των άχαρων του διακομιστή σας) όσο και λειτουργικό (ο επισκέπτης δεν φεύγει από το site, έχει μπροστά του ακόμα μενού και συνδέσμους να επιλέξει κάτι άλλο). Μπορείτε να δημιουργήσετε τέτοιες σελίδες για οποιοδήποτε σφάλμα αρκεί να γνωρίζετε τον αριθμό του (πχ 404 για το «η σελίδα δεν βρέθηκε»). Η αντίστοιχη εντολή στο αρχείο .htaccess έχει την μορφή: ErrorDocument αριθμός_ασφάλματος /διαδρομή στο αρχείο/file.html Για παράδειγμα αν θέλετε να φτιάξετε μία δική σας σελίδα σφάλματος για το σφάλμα 404 δημιουργήστε την σελίδα και δώστε της ένα όνομα (έστω not_found.html στο root directory) και κατόπιν προσθέστε στο .htaccess το εξής: ErrorDocument 404 /not_found.html
Τα πιο συχνά σφάλματα είναι τα εξής:
401 - Authorization Required (απαιτείται πιστοποίηση) 400 - Bad request (κακό αίτημα) 403 - Forbidden (απαγορεύεται) 500 - Internal Server Error (εσωτερικό σφάλμα διακομιστή) 404 - Wrong page (λάθος σελίδα)
Χρήσιμες εφαρμογές .htaccess:
- Περιορισμός της πρόσβασης σε ορισμένα directories με χρήση passwords. - Ανακατεύθυνση σε άλλη ιστοσελίδα. - Χειρισμός μηνυμάτων για διάφορες καταστάσεις. - Αλλαγή Mime-types. - Ενεργοποίηση/απενεργοποίηση διαφόρων λειτουργιών του server.
Χρήσιμα παραδείγματα και τεχνικές για το αρχείο .htaccess
Ενεργοποίηση της περιήγησης σε ένα φάκελο
Options +Indexes
## Αποκλεισμός κάποιων τύπων αρχείων ώστε να μην προβάλλονται
IndexIgnore *.wmv *.mp4 *.avi
Απενεργοποίηση της περιήγησης σε ένα φάκελο
Options All -Indexes
Προσαρμοσμένες σελίδες σφαλμάτων
ErrorDocument 403 /forbidden.html
ErrorDocument 404 /notfound.html
ErrorDocument 500 /servererror.html
Κάντε το SSI να λειτουργεί με σελίδες HTML/SHTML
AddType text/html .html
AddType text/html .shtml
AddHandler server-parsed .html
AddHandler server-parsed .shtml
Αλλαγή της προεπιλεγμένης σελίδας
DirectoryIndex myhome.htm index.htm index.php
Αποκλεισμός πρόσβασης στο site για συγκεκριμένους χρήστες
order deny,allow
deny from 205.55.152.53
deny from 8.50.55.53
deny from .spammer.com
allow from all
όπου 205.55.152.53 8.50.55.53 .spammer.com είναι ενδεικτικές τιμές IP και domains που θέλετε να αποκλείσετε.
Επιτρέψτε την πρόσβαση μόνο σε χρήστες του εσωτερικού δικτύου
order deny,allow
deny from all
allow from 192.168.0.0/24
Ανακατεύθυνση των χρηστών σε νέα σελίδα/κατάλογο
Redirect oldpage.html http://www.mydomain.gr/newpage.html
Redirect /olddir http://www.mydomain.gr/newdir/
Μπλοκάρετε τα Hotlinks
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www.)?mydomain.gr/.*$ [NC]
RewriteRule .(gif|jpg)$ - [F]
Αλλάξτε την επέκταση των script σας
AddType application/x-httpd-php .gne
Redirection από ένα domain χωρίς "www" προς το ίδιο domain με "www".
Όταν ο χρήστης ανοίγει το site "mydomain.gr" να τον κατευθύνει αυτόματα στο "www.mydomain.gr":
RewriteEngine on
RewriteCond %{HTTP_HOST} ^mydomain.gr [NC]
RewriteRule ^(.*)$ http://www.mydomain.gr/$1 [L,R=301]